home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / hypertxt / msdos / ebk / eb.htx < prev    next >
Encoding:
Text File  |  1991-07-31  |  16.0 KB  |  416 lines

  1. >|Intro|HyperText|Electronic Book|Linear Presentation|Table of Contents|Index|<
  2.  
  3.      EB HyperText
  4.      ============
  5.      
  6.      
  7.      EB, the Electronic Book, is a simple ~topic oriented~ 
  8.      hypertext ~viewing program~.  Topics may contain links to 
  9.      other topics or programs.  A topic may even reside in 
  10.      another hypertext file.  The links appear as highlighted 
  11.      hot-spots which when activated by the viewer force a jump to 
  12.      the specified target topic or program.  The viewer can of 
  13.      course backtrack over any jump, a process known as popping 
  14.      the hyperstack.  Traditionally all literature has had a 
  15.      linear presentation scheme determined by the author.  
  16.      Hypertext has liberated the audience by allowing each to 
  17.      choose somewhat the order of presentation and the admission 
  18.      or omission of material.  Hypertext pundits however have 
  19.      largely ignored the qualities of a book that allow its 
  20.      reader nonlinear access, namely the ~Table of Contents~ and 
  21.      ~Index~.  EB incorporates both, hence the name Electronic 
  22.      Book.
  23.      
  24. <|Authoring - Inlinks|Viewing HyperText|Authoring - Inlinks|Authoring - Inlinks|>
  25. >|Viewing HyperText|Usage|Commands|Help|Toggle Mono/Color|Toggle 25 - 43/50|<   
  26.      
  27.  
  28.      EB Hypertext Viewing
  29.      ====================
  30.  
  31.      
  32.      Usage:    eb   -m  -ttopic  pathname
  33.  
  34.  
  35.     m        optionally force monochrome display
  36.     ttopic        optional topic in hypertext file
  37.     pathname    optional hypertext file
  38.  
  39.  
  40.      The following commands are available:
  41.  
  42.  
  43.     F1            Help
  44.     F3            Load new HyperText file
  45.     F10, AltT        ~Table of Contents~
  46.     AltF10, AltI        ~Index~
  47.     CR            Tranverse HyperLink
  48.     AltF1, BACKSP        Backtrack HyperLink
  49.     F6            Toggle 25 - 43/50 lines
  50.     ShiftF6            Toggle monochrome/color
  51.     AltX            Exit
  52.     
  53.          UpArr            Line up
  54.     DnArr            Line down
  55.     LArr            Character left
  56.     RArr            Character right
  57.     CtrlLArr        Word left
  58.     CtrlRArr        Word right
  59.     PgUp            Page up
  60.     PgDn            Page down
  61.     CtrlW            Scroll up
  62.     CtrlZ            Scroll down
  63.     CtrlPgUp        First page of ~current topic~
  64.     CtrlPgDn        Last page of current topic
  65.     Home            Beginning of line
  66.     End            End of line
  67.     CtrlHome        Top of window
  68.     CtrlEnd            Bottom of window
  69.     
  70.     Tab            Next ~hyperlink~
  71.     ShiftTab        Previous hyperlink
  72.     
  73.     
  74.     Typing characters will take you to the first hyperlink 
  75.     that matches the prefix thus far typed.  Typing any 
  76.     non-matching characters truncates the prefix to begin 
  77.     anew the process with the next character typed.
  78. <|Authoring - Inlinks|Authoring - Inlinks|Grammar - Explanation|Authoring - HyperLinks|>
  79. >|Authoring - Inlinks|Inlinks|256|topic|clue|HyperLinks|<
  80.      
  81.      
  82.      EB HyperText Authoring
  83.      ======================
  84.      
  85.  
  86.      The EB hypertext system is designed to allow hypertext 
  87.      authoring with any ASCII editor and the rapid conversion of 
  88.      existing material to hypertext.  Taking any existing text 
  89.      file you can embed topic/clue specifiers from which EB can 
  90.      automatically create a table of contents and index on reader 
  91.      demand.  You can also embed ~hyperlink~ specifiers.  
  92.      Hyperlinks are highlighted text hot-spots that force jumps 
  93.      to other topics in any hypertext file or launch programs 
  94.      when choosen by your readers.  When the modified text file 
  95.      is subsequently viewed with EB, the specifiers are invisible 
  96.      to the reader.  Instead the reader is left with ~hypertext~, 
  97.      and the ability to instantly jump to the table of contents 
  98.      or index and subsequent topic, or across any hyperlink.
  99.      
  100.      Let's first see how to embed a new topic along with optional 
  101.      clues in your text.
  102.      
  103. .         >|topic|clue|clue|<
  104.  
  105.      The ">|" characters must appear at the start of a new line 
  106.      and the specifier must not extend pass the end of the line.  
  107.      Specifier lines are limited to 256 characters including the 
  108.      new line character.  "Topic" is what ever text you want to 
  109.      appear in the table of contents.  Topics appear in the table 
  110.      of contents in the same sequential order that they appear in 
  111.      the file.  "Clue" is what ever text you want to appear in 
  112.      the index.   The index is comprised of an alphabetical 
  113.      listing of topics and clues.  From the table of contents or 
  114.      index, the reader can instantly jump to the entry's 
  115.      corresponding topic.  You can supply as many clues as you 
  116.      want or none at all.  Each new clue is introduced with the 
  117.      "|" character.  The "|<" characters terminate the topic/clue 
  118.      specifier.  The topic begins on the next line after the "|<" 
  119.      characters.  The topic/clue specifier is formally called the 
  120.      ~inlinks specifier~.
  121.      
  122. <|Authoring - HyperLinks|Intro|Grammar - Explanation|>
  123. >|Authoring - HyperLinks|launch|tilde|diacritical|highlighting|Outlinks|<     
  124.  
  125.      Each hyperlink is specified in two parts, a launch and a 
  126.      target.  The ~launch~ is the highlighted text hot-spot in your 
  127.      original text and is delimited with the tilde diacritical 
  128.      mark.  A corresponding ~target~ must appear in the ~outlinks~ 
  129.      specifier.  Suppose you want the word "time" as in:
  130.       
  131.         Now is the time for all good authors ...
  132.  
  133.      is to be a launch.  Simply bracket the word "time" with the 
  134.      tilde diacritical mark:
  135.      
  136.         Now is the ~~time~~ for all good authors ...
  137.          
  138.      The first tilde turns on highlighting while the second turns 
  139.      it off.  The tildes are invisible when viewed with EB.  This 
  140.      implementation of the launch allows the hypertext to appear 
  141.      in nearly the same spatial layout when authoring as when 
  142.      viewing.  More than one launch may appear on the same line 
  143.      but none may wrap to the next line.  Place two tildes 
  144.      immediately adjacent to each other if you want a tilde to 
  145.      appear as visible text instead of indicating the beginning 
  146.      or end of a launch.  Extending our example alittle:
  147.      
  148. .         >|Authoring|<
  149.     
  150.     Now is the ~~time~~ for all good authors ...
  151.     
  152. .    <|DOS|>
  153.      
  154.      The ~inlinks~ specifier indicates the start of a new ~topic~ 
  155.      called "Authoring."  No ~clues~ have been specified.  The 
  156.      context of this topic includes the one launch indicating 
  157.      that the word "time" is to be highlighted.  The outlinks 
  158.      specifier terminates the topic and contains the target, 
  159.      "DOS",  which the reader will be taken to if the "time" 
  160.      hyperlink is choosen.   The outlinks specifier must also 
  161.      appear at the start of a new line and not extend beyond the 
  162.      end of the line.
  163.  
  164.      Let's extend our example again:
  165.      
  166. .        >|Authoring|<
  167.          
  168.     Now is the ~~time~~ for all good authors to turn their
  169.     ordinary text into ~~hypertext!~~
  170.         
  171. .    <|DOS|hyped text|>
  172.     
  173.      A second launch and corresponding target has been added, 
  174.      namely "hypertext!" and its target "hyped text".
  175. <|Grammar - Explanation|Grammar - Explanation|Grammar - Explanation|Grammar - Explanation|Authoring - Inlinks|Authoring - Inlinks|>
  176. >|Authoring - Example|<     
  177.  
  178.  
  179.      Now for the whole example:
  180.      
  181.           
  182. .       >|Authoring|<
  183.          
  184.     Now is the ~~time~~ for all good authors to turn their
  185.     ordinary text into ~~hypertext!~~
  186.         
  187. .    <|DOS|hyped text|>
  188.     
  189. .    >|Hyped Text|<
  190.     
  191.     Hyped text is ordinary text with embedded hypertext 
  192.     specifiers.
  193.     
  194. .    <||>
  195.     
  196.  
  197. .    >|DOS|<
  198.  
  199.      Set DOS
  200.         
  201.             ~~time~~        ~~date~~        
  202.             
  203.     ~~Other DOS Commands~~
  204.     
  205. .    <|^?command.com /ctime|^>date|^dos.htx|>
  206.     
  207.     
  208.      In this example there are three topics: "Authoring", "Hyped 
  209.      Text", and "DOS".  ~Nameless topics~ are will be unreachable 
  210.      if more one such topic exists in the file.  ~Nameless clues~ 
  211.      serve to other purpose than putting more than one entry into 
  212.      the index for a given topic.  "Authoring" is the default 
  213.      topic for the file since it appears first.  The "Hyped Text" 
  214.      topic doesn't have any hyperlinks.  Notice that the target 
  215.      pairing of "hyped text" with the topic "Hyped Text" is case 
  216.      insensitive!  The "DOS" topic has three ~launches~ all with 
  217.      far targets.  The first target is an spawn call to the DOS 
  218.      command processor.  The second target demonstrates the 
  219.      preferred way to make a system call.  The last target is the 
  220.      default (first) topic in the hypertext file entitled 
  221.      "dos.htx".  Spawn calls return immediately upon termination 
  222.      to the page that spawned them.  System calls ask the user to 
  223.      "Press any key ..." before returning.  Besure to read the 
  224.      ~format reference section~ for complete details!
  225. <|Grammar - Rules|Authoring - Inlinks|Authoring - HyperLinks|Grammar - Rules|>
  226. >|Grammar - Rules|production|terminals|options|+|*|<     
  227.  
  228.  
  229.      EB HyperText Grammar
  230.      ====================
  231.      
  232.      
  233.      The production rules below outline the grammar recognized by 
  234.      the Electronic Book.  ~Explanations~ of the rules follow 
  235.      immediately after.  Applying the production rules you can 
  236.      construct the format schema of any hypertext file readible 
  237.      by EB.  The name of the rule appears to the left and its 
  238.      production to the right.  If the production contains rules 
  239.      these rules must likewise be expanded until all rules are 
  240.      replace with terminal symbols.  Rule names are capitalized 
  241.      while terminals begin with lower case.
  242.      
  243.      For example, starting with "HyperFile", expanding the rule 
  244.      provides for a file of optional comments followed by one or 
  245.      more "HyperTopics" which may be separated by additional 
  246.      comments.  Optional components of the production are 
  247.      enclosed in brackets, i.e. [].  Items considered together 
  248.      are enclosed in braces, i.e. {}.  The "+" means one or more 
  249.      while the "*" means zero or more.  The "|" symbol means 
  250.      either that which preceeds or that which follows but not 
  251.      both.  If any of these special symbols are preceeded by a 
  252.      "\" then it is to be taken literally thus devoid of any 
  253.      special meaning.  It's really not as hard as it may seem at 
  254.      first glance.  Try your hand at reading the rules and their 
  255.      explanations.  It will be easier to understand if you read 
  256.      the ~section on authoring~ first.
  257.  
  258.      
  259.      HyperFile:        [comments]{HyperTopic[comments]}+
  260.      
  261.      HyperTopic:    Inlinks Context Outlinks
  262.      
  263.      Inlinks:        >\|topic{\|clue}*\|<
  264.      
  265.      Context:        [text]{Launch[text]}*
  266.      
  267.      Outlinks:        <\|[Target{\|Target}*]\|>
  268.      
  269.      Launch:        ~~any text~~
  270.      
  271.      Target:        Near Target | Far Target
  272.      
  273.      Near Target:    topic  |
  274.                  default
  275.      
  276.      Far Target:    topic^HyperFileName  |
  277.                  default^HyperFileName |
  278.                  ignore^>system call   |
  279.             ignore^?spawn call
  280.     
  281.      HyperFileName:    pathname.ext  |
  282.                  pathname      |
  283.             pathname.
  284. <|Grammar - Explanation|Authoring - Inlinks|>
  285. >|Grammar - Explanation|<            
  286.  
  287.  
  288.      A HyperFile contains one or more HyperTopics.  Any text not 
  289.      residing within a HyperTopic is considered a comment and is 
  290.      not visible to the reader.
  291.      
  292.      A HyperTopic is comprised of an inlinks specifier, context 
  293.      of the topic, and outlinks specifier.  Only the context is 
  294.      visible to the reader.
  295.      
  296.      An ~Inlinks specifier~ contains topic and clue strings which 
  297.      must not contain the '|', '>', or '<' characters.  
  298.      Furthermore the topic string may not contain the "^" 
  299.      character.  One or more clues are optional.  Only the first 
  300.      nameless topic in a file will be reachable from the Table of 
  301.      Contents, Index, or via a hyper-jump.  Nameless clues serve 
  302.      no other purpose than creating more than one entry in the 
  303.      Index for a given topic.
  304.      
  305.      The Context contains all visible text for the topic and any 
  306.      number of hyperlink launches.
  307.      
  308.      An ~Outlinks specifier~ contains any number of targets for the 
  309.      launches within the Context.  The first target corresponds to 
  310.      the first launch, the second target to the second launch, 
  311.      and so on.  If a launch doesn't have a corresponding target, 
  312.      then the launch is aborted if attempted.  The target strings 
  313.      must not contain the '|', '>', or '<' characters.
  314.      
  315.      A Launch is delimited with the tilde diacritical mark, i.e. 
  316.      ~~.  The offset text will appear highlighted.  Choosing the 
  317.      launch takes the reader to the target, if successful 
  318.      otherwise the launch is aborted.  Two tildes appearing 
  319.      together in the text will appear as one visible tilde to the 
  320.      reader and will not be interpretted as a launch delimiter.
  321.      
  322.      A Target can be either near or far.
  323.      
  324.      A Near target specifies a topic within the current hypertext 
  325.      file.  The empty string indicates the default topic which is 
  326.      considered always to be the first topic of a hypertext file.
  327.      
  328.      A Far Target specifies either a (default) topic in another 
  329.      specified hypertext file or an operating system/spawn call, 
  330.      in which case any topic string is simply ignored.
  331.      
  332.      The HyperFileName is any legal pathname.  When the file 
  333.      extension is absent it is assume to be ".htx".  No extension 
  334.      can be specified by appending a period to the pathname.
  335.      
  336.      Notes: In this first version of EB a restriction has been 
  337.      placed on the both inlinks and outlinks specifiers to begin 
  338.      at the start of a new line and not extend pass the end of 
  339.      that line.  The format specification above doesn't require 
  340.      this - it is simply to make the parsing of the file faster 
  341.      and easier this first time around.  Likewise, launches are 
  342.      required to appear on one line and lines are limited to 256 
  343.      characters.  The grammar specification has been deliberately 
  344.      designed to facilitate the adding of screen formating 
  345.      information and application language capabilities, e.g. 
  346.      variables, logic flow and I/O masks (both user and file 
  347.      interface).
  348. <|Authoring - Inlinks|Authoring - HyperLinks|>
  349. >|Registration|PSW|FlexList|Austin Code Works|Freeware|Shareware|<     
  350.  
  351.  
  352.  
  353.      EB HyperText Registration
  354.      =========================
  355.      
  356.      
  357.      ~EB~ is meant to be primarily a demonstration of how easy it 
  358.      is to use the FlexList programming tool.  EB source code is 
  359.      included with FlexList.  Those portions not tightly coupled 
  360.      to FlexList are also available as Freeware.  EB was coded 
  361.      entirely without cutting any linked list code, FlexList did 
  362.      it all.  This version of EB.EXE is freeware, meaning that 
  363.      there is no fee for using EB.EXE, but you must leave my 
  364.      copyright notice intact!  Shareware/Freeware distributors 
  365.      are also free to distribute it.  Commercial venders may 
  366.      bundle EB.EXE (unmodified) with their software without cost 
  367.      but in any literature mentioning it they must give proper 
  368.      credit to PSW!  Licensing is required for other uses, e.g. 
  369.      you must register FlexList to incorporate components of EB 
  370.      into your software.
  371.  
  372.  
  373.      FlexList II ANSI && K&R C            $79.95
  374.      FlexList II C++                $79.95
  375.  
  376.     * Ready-to-run C/C++ linked lists.
  377.     * Hybrid structure: stack, queue, list, array.
  378.     * Stores Heterogeneous/homogeneous data.
  379.     * Accessible by value, reference or node.
  380.     * Source is also broken in separate files along
  381.         with makefile for easy library building.
  382.     * 100+ page manual
  383.  
  384.  
  385.      FlexList is also available at a discount from:
  386.      
  387.          The Austin Code Works
  388.     11100 Leafwood Lane
  389.     Austin, Texas 78750-3587 USA
  390.     
  391.     Voice:  (512) 258-0785
  392.     FAX:    (512) 258-1342
  393.     E-mail: info@acw.com
  394.     
  395.  
  396.      
  397.      Thanks again for taking a look at EB and how easy it is to 
  398.      use FlexList in building applications!  I hope you can use 
  399.      it in your shareware/commercial efforts to supply hypertext 
  400.      manuals to your customers.  Your comments, suggestions, and 
  401.      questions are always welcome.
  402.      
  403.  
  404.     John W. Small
  405.     PSW / Power SoftWare
  406.     P.O. Box 10072
  407.     McLean, VA 22102 8072 USA
  408.      
  409.     Voice: (703) 759-3838
  410.     CIS: 73757,2233
  411.      
  412.  
  413.      Happy Authoring!
  414.     
  415.         John
  416. <|Intro|>